﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using BLL;
using DTO;
using System.Text.RegularExpressions;

namespace GaraOto
{
    public partial class frmFeeManager : DevExpress.XtraEditors.XtraUserControl
    {
        FeeBLL feeBLL = new FeeBLL();
        string feePatern = @"^([0-9]*\s[-]\s[0-9]*)";
        string number = "^[1-9][0-9]*$";
        public frmFeeManager()
        {
            InitializeComponent();
            BindingDataFee();
        }

        public void BindingDataFee()
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = feeBLL.SelectALL();
            bnvFees.BindingSource = bs;
            gcFees.DataSource = bs;
        }

        public void ResetFee()
        {
            teFeeName.Text = "";
            tePrice.Text = "";

            btnAddFee.Enabled = true;
            btnEditFee.Enabled = false;
        }

        private void btnAddFee_Click(object sender, EventArgs e)
        {
            Regex regex = new Regex(feePatern);
            Regex regex2 = new Regex(number);
            if (teFeeName.Text != "")
            {
                if (regex.IsMatch(teFeeName.Text.Trim()))
                {
                    if (tePrice.Text != "")
                    {
                        if (regex2.IsMatch(tePrice.Text.Trim()))
                        {
                            FeeDTO feeDTO = new FeeDTO();
                            feeDTO.FeeName = teFeeName.Text;
                            feeDTO.Price = tePrice.Text;

                            string message = feeBLL.Insert(feeDTO);
                            if (message.Equals(MessageAction.Success))
                            {
                                MessageBox.Show("Thêm mới phí thành công");
                                BindingDataFee();
                                ResetFee();
                            }
                            else
                            {
                                MessageBox.Show("Thêm mới phí không thành công");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Bạn hãy nhập đúng định dạng phí");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn hãy nhập mức phí");
                    }
                }
                else
                {
                    MessageBox.Show("Bạn nhập không đúng định dạng giờ quy định");
                }
            }
            else
            {
                MessageBox.Show("Bạn hãy nhập giờ quy định");
            }
        }

        private void btnEditFee_Click(object sender, EventArgs e)
        {
            if (teFeeName.Text != "")
            {
                if (tePrice.Text != "")
                {
                    FeeDTO feeDTO = new FeeDTO();
                    feeDTO.FeeID = Convert.ToInt32(gvFees.GetRowCellValue(gvFees.GetSelectedRows()[0],gcFeeID));
                    feeDTO.FeeName = teFeeName.Text;
                    feeDTO.Price = tePrice.Text;

                    string message = feeBLL.Update(feeDTO);
                    if (message.Equals(MessageAction.Success))
                    {
                        MessageBox.Show("Cập nhật thông tin phí thành công");
                        BindingDataFee();
                        ResetFee();
                    }
                    else
                    {
                        MessageBox.Show("Cập nhật thông tin phí không thành công");
                    }
                }
                else
                {
                    MessageBox.Show("Bạn hãy nhập mức phí");
                }
            }
            else
            {
                MessageBox.Show("Bạn hãy nhập giờ quy định");
            }
        }

        private void gvFees_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            teFeeName.Text = gvFees.GetRowCellValue(gvFees.GetSelectedRows()[0], gcFeeName).ToString();
            tePrice.Text = gvFees.GetRowCellValue(gvFees.GetSelectedRows()[0], gcPrice).ToString();

            btnAddFee.Enabled = false;
            btnEditFee.Enabled = true;
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            ResetFee();
        }
    }
}
